home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / stk-3.0 / stk-3 / blt-for-STk-3.0 / blt-1.9 / demos / grconf.tcl < prev    next >
Encoding:
Text File  |  1995-07-01  |  38.5 KB  |  1,193 lines

  1. #!../blt_wish -f
  2.  
  3. if [file exists ../library] {
  4.     set blt_library ../library
  5. }
  6. set graph {}
  7. set interp {}
  8. set class {}
  9. set table(dummy) {}
  10. set setProc(dummy) {}
  11. set getProc(dummy) {}
  12. set row 0
  13. set column 0
  14.  
  15. wm title . "Graph Configure Tool"
  16.  
  17. option add *Radiobutton.font *New*Century*Schoolbook-Medium*-R-*-12-*
  18. option add *Radiobutton.relief flat
  19. #option add *Entry.font *Courier-Medium-R-*-12-*
  20. option add *Label.font *Helvetica-Bold-R-*-12-*
  21. option add *title.font *Helvetica-Bold-R-*-14-*
  22. option add *Entry.font *Courier-Medium-R-*-12-*
  23. option add *Scale.length 120
  24.  
  25. #
  26. #  Controls for various options
  27.  
  28. proc GetOptions { options arrayVar defaultsVar } {
  29.     upvar $arrayVar array
  30.     upvar $defaultsVar defaults
  31.  
  32.     foreach item $options {
  33.     if {[llength $item] < 4} {
  34.         continue
  35.     }
  36.     set name [lindex $item 0] 
  37.     set value [lindex $item 4]
  38.     set array($name) $value
  39.     }
  40.     set names [lsort [array names array]]
  41.     set defaults {}
  42.     foreach i $names {
  43.     lappend defaults $i $array($i)
  44.     }
  45. }
  46.  
  47. proc AnchorControl { name option value } {
  48.     global row column table setProc 
  49.  
  50.     label $table($name).label$option -text $option 
  51.     frame $table($name).frame$option 
  52.     set frame $table($name).frame$option 
  53.     set variable $name$option
  54.  
  55.     set count 0
  56.     foreach i { nw n ne w center e sw s se } {
  57.     radiobutton $frame.rbutton_$i -variable $variable -value $i -text $i \
  58.         -command "$setProc($name) $option \$\{$variable\}"
  59.     blt_table $frame $frame.rbutton_$i $count/3,$count%3 -anchor w
  60.     incr count
  61.     }
  62.     blt_table $table($name) \
  63.     $table($name).label$option $row,$column -anchor w \
  64.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  65.  
  66.     global $variable
  67.     set $variable $value
  68.     incr row 
  69. }
  70.  
  71. proc AnchorReset { name option value } {
  72.     global setProc 
  73.  
  74.     set variable $name$option
  75.     global $variable
  76.     set $variable $value
  77.     $setProc($name) $option $value
  78. }
  79.  
  80. proc ReliefControl { name option value } {
  81.     global row column table setProc
  82.  
  83.     label $table($name).label$option -text $option 
  84.     frame $table($name).frame$option 
  85.     set frame $table($name).frame$option 
  86.     set variable $name$option
  87.  
  88.     set count 0
  89.     foreach i { sunken groove flat ridge raised } {
  90.     radiobutton $frame.rbutton_$i -variable $variable -value $i -text $i \
  91.         -command "$setProc($name) $option \$\{$variable\}"
  92.     blt_table $frame $frame.rbutton_$i $count/2,$count%2 -anchor w
  93.     incr count
  94.     }
  95.     blt_table $table($name) \
  96.     $table($name).label$option $row,$column -anchor w \
  97.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  98.     
  99.     global $variable
  100.     set $variable $value
  101.     incr row 
  102. }
  103.  
  104. proc ReliefReset { name option value } {
  105.     global setProc
  106.     set variable $name$option
  107.     global $variable
  108.     set $variable $value
  109.     $setProc($name) $option $value
  110. }
  111.  
  112.  
  113. proc SymbolControl { name option value } {
  114.     global row column table setProc
  115.  
  116.     label $table($name).label$option -text $option 
  117.     frame $table($name).frame$option 
  118.     set frame $table($name).frame$option 
  119.     set variable $name$option
  120.  
  121.     set count 0
  122.     foreach i { Line Circle Cross Diamond Plus Square Scross Splus } {
  123.     radiobutton $frame.rbutton_$i -variable $variable -value $i -text $i \
  124.         -command "$setProc($name) $option \$\{$variable\}"
  125.     blt_table $frame $frame.rbutton_$i $count/3,$count%3 -anchor w
  126.     incr count
  127.     }
  128.     blt_table $table($name) \
  129.     $table($name).label$option $row,$column -anchor w \
  130.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  131.     
  132.     global $variable
  133.     set $variable $value
  134.     incr row 
  135. }
  136.  
  137. proc SymbolReset { name option value } {
  138.     global setProc
  139.     set variable $name$option
  140.     global $variable
  141.     set $variable $value
  142.     $setProc($name) $option $value
  143. }
  144.  
  145. proc BooleanControl { name option value } {
  146.     global row column table setProc
  147.  
  148.     label $table($name).label$option -text $option 
  149.     frame $table($name).frame$option 
  150.     set frame $table($name).frame$option 
  151.     set variable $name$option
  152.  
  153.     radiobutton $frame.rbutton_true -text "true" -variable $variable \
  154.     -command "$setProc($name) $option \$\{$variable\}" \
  155.     -value 1 
  156.     radiobutton $frame.rbutton_false  -text "false" -variable $variable \
  157.     -command "$setProc($name) $option \$\{$variable\}" \
  158.     -value 0
  159.     blt_table $frame \
  160.     $frame.rbutton_true  0,0 -anchor w \
  161.     $frame.rbutton_false 0,1 -anchor w
  162.  
  163.     blt_table $table($name) \
  164.     $table($name).label$option $row,$column -anchor w \
  165.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  166.  
  167.     global $variable
  168.     set $variable $value
  169.     incr row 
  170. }
  171.  
  172. proc BooleanReset { name option value } {
  173.     global setProc
  174.     set variable $name$option
  175.     global $variable
  176.     set $variable $value
  177.     $setProc($name) $option $value
  178. }
  179.  
  180. proc SetInt { name option value } {
  181.     global table setProc
  182.  
  183.     $setProc($name) $option $value
  184.     $table($name).frame$option.scale set $value
  185.     $table($name).frame$option.entry delete 0 end
  186.     $table($name).frame$option.entry insert 0 $value
  187. }
  188.  
  189. proc IntControl { name option from to value } {
  190.     global row column table 
  191.  
  192.     label $table($name).label$option -text $option 
  193.     frame $table($name).frame$option
  194.     set frame $table($name).frame$option
  195.     entry $frame.entry -relief sunken -width 6
  196.     scale $frame.scale -from $from -to $to \
  197.     -orient horizontal  -bg bisque1 -showvalue 0 
  198.     blt_table $frame \
  199.     $frame.entry 0,0 -fill x \
  200.     $frame.scale 0,1  -fill x
  201.     $frame.scale set $value
  202.     $frame.scale configure -command "SetInt $name $option "
  203.     $frame.entry insert 0 $value
  204.     bind $frame.entry <Return> "SetInt $name $option \[%W get\]"
  205.     blt_table $table($name) \
  206.     $table($name).label$option $row,$column -anchor w \
  207.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x 
  208.     incr row 
  209. }
  210.  
  211. proc IntReset { name option value } {
  212.     global setProc
  213.  
  214.     SetInt $name $option $value
  215.     $setProc($name) $option $value
  216. }
  217.  
  218. proc SetFloatFromEntry { name option scale value } {
  219.     global table setProc
  220.  
  221.     $setProc($name) $option $value
  222.     $table($name).frame$option.scale set [expr round($value/$scale)]
  223.     $table($name).frame$option.entry delete 0 end
  224.     $table($name).frame$option.entry insert 0 $value
  225. }
  226.  
  227. proc SetFloatFromScale { name option scale value } {
  228.     global table setProc
  229.  
  230.     set x [expr $scale*$value]
  231.     $setProc($name) $option $x 
  232.     $table($name).frame$option.scale set $value
  233.     $table($name).frame$option.entry delete 0 end
  234.     $table($name).frame$option.entry insert 0 $x
  235. }
  236.  
  237. proc FloatControl { name option from to scale value } {
  238.     global row column table setProc
  239.  
  240.     label $table($name).label$option -text $option 
  241.     frame $table($name).frame$option
  242.     set frame $table($name).frame$option
  243.     entry $frame.entry -relief sunken -width 6
  244.     scale $frame.scale -from $from -to $to \
  245.     -orient horizontal  -bg bisque1 -showvalue 0  \
  246.     -command "SetFloatFromScale $name $option $scale"
  247.     blt_table $frame \
  248.     $frame.entry 0,0 -fill x \
  249.     $frame.scale 0,1  -fill x
  250.     $frame.scale set [expr round($value/$scale)]
  251.     $frame.entry insert 0 $value
  252.     bind $frame.entry <Return> \
  253.     "SetFloatFromEntry $name $option $scale \[%W get\]"
  254.     blt_table $table($name) \
  255.     $table($name).label$option $row,$column -anchor w \
  256.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x 
  257.     incr row 
  258. }
  259.  
  260. proc FloatReset { name option scale value } {
  261.     global setProc
  262.     
  263.     SetFloatFromEntry $name $option $scale $value 
  264.     $setProc($name) $option $value
  265. }
  266.  
  267.  
  268. proc RGBInit {} {
  269.     global RGB
  270.  
  271.     set RGB(dummy) 0
  272.     if ![catch { exec showrgb } colorList] {
  273.     set colorList [split $colorList \n]
  274.     foreach i $colorList {
  275.         set parts [split $i \t]
  276.         set name [lindex $parts 2]
  277.         set RGB($name) [lindex $parts 0]
  278.     }
  279.     }
  280. }
  281.  
  282. proc RGBSetColorFromScale { name option color intensity } {
  283.     global rgb-$name$option setProc table
  284.  
  285.     set rgb-$name${option}($color) $intensity
  286.     set color [format #%02x%02x%02x [set rgb-$name${option}(red)] \
  287.            [set rgb-$name${option}(green)] [set rgb-$name${option}(blue)]]
  288.     $table($name).frame$option.entry delete 0 end
  289.     $table($name).frame$option.entry insert 0 $color
  290.     $setProc($name) $option $color
  291. }
  292.  
  293. proc RGBInitControls { name option color } {
  294.     global rgb-$name$option table RGB
  295.  
  296.     set frame $table($name).frame$option
  297.     $frame.entry delete 0 end
  298.     $frame.entry insert 0 $color
  299.     if { [string match #* $color] } {
  300.     set rgb-${name}${option}(red) 0x[string range $color 1 2]
  301.     set rgb-${name}${option}(green) 0x[string range $color 3 4]
  302.     set rgb-${name}${option}(blue) 0x[string range $color 5 6]
  303.     } elseif { [info exists RGB($color)] } {
  304.     set info $RGB($color)
  305.     set rgb-${name}${option}(red) [lindex $info 0]
  306.     set rgb-${name}${option}(green) [lindex $info 1]
  307.     set rgb-${name}${option}(blue) [lindex $info 2]
  308.     } else {
  309.     set rgb-${name}${option}(red) 0
  310.     set rgb-${name}${option}(green) 0
  311.     set rgb-${name}${option}(blue) 0
  312.     return
  313.     }
  314.     foreach i { red green blue } {
  315.     $frame.scale_$i set [set rgb-${name}${option}($i)]
  316.     }
  317. }
  318.  
  319. proc RGBSetColorFromEntry { name option color } {
  320.     global setProc table 
  321.  
  322.     RGBInitControls $name $option $color
  323.     $setProc($name) $option $color
  324. }
  325.  
  326. proc RGBColorControl { name option value } {
  327.     global row column table 
  328.     
  329.     label $table($name).label$option -text $option 
  330.     frame $table($name).frame$option 
  331.     set frame $table($name).frame$option 
  332.     
  333.     entry $frame.entry -relief sunken -width 8
  334.     scale $frame.scale_red -from 0 -to 255 -orient horizontal -showvalue 0 \
  335.     -bd 0 -command "RGBSetColorFromScale $name $option red"
  336.     scale $frame.scale_green -from 0 -to 255 -orient horizontal -showvalue 0 \
  337.     -bd 0 -command "RGBSetColorFromScale $name $option green"
  338.     scale $frame.scale_blue -from 0 -to 255 -orient horizontal -showvalue 0 \
  339.     -bd 0 -command "RGBSetColorFromScale $name $option blue"
  340.     blt_table $frame \
  341.     $frame.entry 0,0 -rspan 3 \
  342.     $frame.scale_red 0,1 -fill both  \
  343.     $frame.scale_green 1,1 -fill both \
  344.     $frame.scale_blue 2,1 -fill both 
  345.  
  346.     bind $frame.entry <Return> \
  347.     "RGBSetColorFromEntry $name $option \[%W get\]"
  348.     RGBInitControls $name $option $value
  349.     blt_table $table($name) \
  350.     $table($name).label$option $row,$column -anchor w \
  351.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  352.     incr row 
  353. }
  354.  
  355. proc RGBColorReset { name option value } {
  356.     RGBSetColorFromEntry $name $option $value
  357. }
  358.  
  359. proc EntryControl { name option value } {
  360.     global row column table setProc
  361.  
  362.     label $table($name).label$option -text $option 
  363.     entry $table($name).entry$option -relief sunken
  364.     bind $table($name).entry$option <Return> \
  365.     "$setProc($name) $option \[%W get\]"
  366.     $table($name).entry$option insert 0 $value
  367.  
  368.     blt_table $table($name) \
  369.     $table($name).label$option $row,$column -anchor w \
  370.     $table($name).entry$option $row,$column+1 -cspan 2 -fill x
  371.     incr row 
  372. }
  373.  
  374. proc EntryReset { name option value } {
  375.     global table setProc
  376.  
  377.     $table($name).entry$option delete 0 end
  378.     $table($name).entry$option insert 0 $value
  379.     $setProc($name) $option $value
  380. }
  381.  
  382. proc FontControl { name option value } {
  383.     global row column table setProc
  384.  
  385.     label $table($name).label$option -text $option 
  386.     frame $table($name).frame$option 
  387.     set frame $table($name).frame$option 
  388.  
  389.     entry $frame.entry -relief sunken
  390.     frame $frame.palette -geom 15x15 -relief raised -bd 2
  391.     blt_table $frame \
  392.     $frame.entry 0,0 -fill x \
  393.     $frame.palette 0,1 -padx 2  -reqwidth 15 -fill y
  394.  
  395.     blt_table column $frame configure 1 -resize none
  396.     $frame.entry insert 0 $value
  397.     bind $frame.entry <Return> "$setProc($name) $option \[%W get\]"
  398.  
  399.     blt_table $table($name) \
  400.     $table($name).label$option $row,$column -anchor w \
  401.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  402.     incr row 
  403. }
  404.  
  405.  
  406. proc FontReset { name option value } {
  407.     global table setProc
  408.  
  409.     $table($name).frame$option.entry delete 0 end
  410.     $table($name).frame$option.entry insert 0 $value
  411.     $setProc($name) $option $value
  412. }
  413.  
  414.  
  415. proc TraceReset { name option value } {
  416.     global setProc
  417.     set variable $name$option
  418.     global $variable
  419.     set $variable $value
  420.     $setProc($name) $option $value
  421. }
  422.  
  423. proc TraceControl { name option value } {
  424.     global row column table setProc
  425.  
  426.     label $table($name).label$option -text $option 
  427.     frame $table($name).frame$option 
  428.     set frame $table($name).frame$option 
  429.     set variable $name$option
  430.  
  431.     radiobutton $frame.rbutton_dec -text "decreasing" -variable $variable \
  432.     -command "$setProc($name) $option \$\{$variable\}" \
  433.     -value "decreasing"
  434.     radiobutton $frame.rbutton_both -text "both" -variable $variable \
  435.     -command "$setProc($name) $option \$\{$variable\}" \
  436.     -value "both"
  437.     radiobutton $frame.rbutton_inc -text "increasing" -variable $variable \
  438.     -command "$setProc($name) $option \$\{$variable\}" \
  439.     -value "increasing" 
  440.     blt_table $frame \
  441.     $frame.rbutton_both 0,0 -anchor w \
  442.     $frame.rbutton_dec 0,1 -anchor w \
  443.     $frame.rbutton_inc 0,2 -anchor w 
  444.  
  445.     blt_table $table($name) \
  446.     $table($name).label$option $row,$column -anchor w \
  447.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  448.  
  449.     global $variable
  450.     set $variable $value
  451.     incr row 
  452. }
  453.  
  454.  
  455. proc MapXAxisControl { name option value } {
  456.     global row column table setProc
  457.  
  458.     label $table($name).label$option -text $option 
  459.     frame $table($name).frame$option 
  460.     set frame $table($name).frame$option 
  461.     set variable $name$option
  462.  
  463.     radiobutton $frame.rbutton_x1 -text "x" -variable $variable \
  464.     -command "$setProc($name) $option \$\{$variable\}" \
  465.     -value "x" 
  466.     radiobutton $frame.rbutton_x2 -text "x2" -variable $variable \
  467.     -command "$setProc($name) $option \$\{$variable\}" \
  468.     -value "x2"
  469.     radiobutton $frame.rbutton_both -text "both" -variable $variable \
  470.     -command "$setProc($name) $option \$\{$variable\}" \
  471.     -value "both"
  472.     blt_table $frame \
  473.     $frame.rbutton_x1 0,0 -anchor w \
  474.     $frame.rbutton_x2 0,1 -anchor w \
  475.     $frame.rbutton_both 0,2 -anchor w
  476.  
  477.     blt_table $table($name) \
  478.     $table($name).label$option $row,$column -anchor w \
  479.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  480.  
  481.     global $variable
  482.     set $variable $value
  483.     incr row 
  484. }
  485.  
  486. proc MapXAxisReset { name option value } {
  487.     global setProc
  488.     set variable $name$option
  489.     global $variable
  490.     set $variable $value
  491.     $setProc($name) $option $value
  492. }
  493.  
  494. proc MapYAxisControl { name option value } {
  495.     global row column table setProc
  496.  
  497.     label $table($name).label$option -text $option 
  498.     frame $table($name).frame$option 
  499.     set frame $table($name).frame$option 
  500.     set variable $name$option
  501.  
  502.     radiobutton $frame.rbutton_y1 -text "y" -variable $variable \
  503.     -command "$setProc($name) $option \$\{$variable\}" \
  504.     -value "y" 
  505.     radiobutton $frame.rbutton_y2 -text "y2" -variable $variable \
  506.     -command "$setProc($name) $option \$\{$variable\}" \
  507.     -value "y2"
  508.     radiobutton $frame.rbutton_both -text "both" -variable $variable \
  509.     -command "$setProc($name) $option \$\{$variable\}" \
  510.     -value "both"
  511.     blt_table $frame \
  512.     $frame.rbutton_y1 0,0 -anchor w \
  513.     $frame.rbutton_y2 0,1 -anchor w \
  514.     $frame.rbutton_both 0,2 -anchor w
  515.  
  516.     blt_table $table($name) \
  517.     $table($name).label$option $row,$column -anchor w \
  518.     $table($name).frame$option $row,$column+1 -cspan 2 -fill x
  519.  
  520.     global $variable
  521.     set $variable $value
  522.     incr row 
  523. }
  524.  
  525. proc MapYAxisReset { name option value } {
  526.     global setProc
  527.     set variable $name$option
  528.     global $variable
  529.     set $variable $value
  530.     $setProc($name) $option $value
  531. }
  532.  
  533. #
  534. #
  535. # Component configuration routines
  536. #
  537. #
  538.  
  539. proc GraphConfigure { interpName graphName } {
  540.     global graph interp class RGB
  541.  
  542.     if ![info exists RGB] {
  543.     RGBInit
  544.     }
  545.     set graph $graphName
  546.     set interp $interpName
  547.     if { $interp == "" } {
  548.     set interp [winfo name .]
  549.     }
  550.     if [catch [list send $interp winfo class $graph] class ] {
  551.     puts stderr "\"send\" disabled: can't communicate with \"$interp\""
  552.     puts stderr $class
  553.     exit 1
  554.     }
  555. }
  556.  
  557. proc ResetGraph {} {
  558.     global graphOptions graphDefaults graph interp class
  559.  
  560.     RGBColorReset graph -background $graphOptions(-background)
  561.     IntReset graph -borderwidth $graphOptions(-borderwidth)
  562.     IntReset graph -bottommargin $graphOptions(-bottommargin)
  563.     BooleanReset graph -bufferelements $graphOptions(-bufferelements)
  564.     EntryReset graph -cursor $graphOptions(-cursor)
  565.     EntryReset graph -font $graphOptions(-font)
  566.     RGBColorReset graph -foreground $graphOptions(-foreground)
  567.     IntReset graph -halo $graphOptions(-halo)
  568.     IntReset graph -height $graphOptions(-height)
  569.     BooleanReset graph -invertxy $graphOptions(-invertxy)
  570.     IntReset graph -leftmargin $graphOptions(-leftmargin)
  571.     RGBColorReset graph -plotbackground $graphOptions(-plotbackground)
  572.     IntReset graph -plotborderwidth $graphOptions(-plotborderwidth)
  573.     ReliefReset graph -plotrelief $graphOptions(-plotrelief)
  574.     ReliefReset graph -relief $graphOptions(-relief)
  575.     IntReset graph -rightmargin $graphOptions(-rightmargin)
  576.     EntryReset graph -title $graphOptions(-title)
  577.     IntReset graph -topmargin $graphOptions(-topmargin)
  578.     IntReset graph -width $graphOptions(-width)
  579.     send $interp $graph configure $graphDefaults
  580. }
  581.  
  582.  
  583. proc SetGraph { option value } {
  584.     global graph interp
  585.     send $interp [list $graph configure $option $value]
  586. }
  587.  
  588. proc GetGraph {} {
  589.     global graph interp
  590.     send $interp [list $graph configure]
  591. }
  592.  
  593.  
  594. proc ConfigureGeneral {} {
  595.     global graphOptions graphDefaults class
  596.     global table row column setProc getProc 
  597.     
  598.     set name graph
  599.     if { [info command .$name] == ".$name" } {
  600.     destroy .$name
  601.     return
  602.     }
  603.     set row 2
  604.     set column 1
  605.     set setProc($name) SetGraph
  606.     set getProc($name) GetGraph
  607.  
  608.     GetOptions [$getProc($name)] graphOptions graphDefaults
  609.     set table($name) .$name
  610.     toplevel $table($name)
  611.     wm title .$name "General Configuration"
  612.     
  613.     frame $table($name).frame -relief groove -bd 2
  614.     label $table($name).title -text "General Configuration Options"
  615.     RGBColorControl graph -background $graphOptions(-background)
  616.     IntControl graph -borderwidth 0 10 $graphOptions(-borderwidth)
  617.     IntControl graph -bottommargin 0 100 $graphOptions(-bottommargin)
  618.     BooleanControl graph -bufferelements $graphOptions(-bufferelements)
  619.     EntryControl graph -cursor $graphOptions(-cursor)
  620.     EntryControl graph -font $graphOptions(-font)
  621.     RGBColorControl graph -foreground $graphOptions(-foreground)
  622.     IntControl graph -halo 0 100 $graphOptions(-halo)
  623.     IntControl graph -height 150 800 $graphOptions(-height)
  624.     set row 2
  625.     set column 5
  626.     BooleanControl graph -invertxy $graphOptions(-invertxy)
  627.     IntControl graph -leftmargin 0 100 $graphOptions(-leftmargin)
  628.     RGBColorControl graph -plotbackground $graphOptions(-plotbackground)
  629.     IntControl graph -plotborderwidth 0 10 $graphOptions(-plotborderwidth)
  630.     ReliefControl graph -plotrelief $graphOptions(-plotrelief)
  631.     ReliefControl graph -relief $graphOptions(-relief)
  632.     IntControl graph -rightmargin 0 100 $graphOptions(-rightmargin)
  633.     EntryControl graph -title $graphOptions(-title)
  634.     IntControl graph -topmargin 0 100 $graphOptions(-topmargin)
  635.     IntControl graph -width 150 800 $graphOptions(-width)
  636.  
  637.     button $table($name).button_done -text "done" \
  638.     -command "destroy .$name; set varGeneral 0"
  639.     button $table($name).button_reset -text "reset" \
  640.     -command "ResetGraph"
  641.     incr row
  642.     if { $row & 1 } {
  643.     incr row
  644.     }
  645.     blt_table $table($name) \
  646.     $table($name).frame 0,0 -cspan 24 -rspan $row -fill both \
  647.     -padx 4 -pady 4 \
  648.     $table($name).title         1,0 -cspan 24 \
  649.     $table($name).button_reset     $row,$column -reqwidth .7i -anchor w \
  650.     $table($name).button_done     $row,$column+1 -reqwidth .7i -anchor e
  651.     blt_table column $table($name) configure { 1 5 } -padx 5
  652.     blt_table row $table($name) configure all -pady 5
  653.     blt_table column $table($name) configure { 0 4 9 } -width 0.25i
  654.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  655.     blt_table row $table($name) configure { $row } -height {}
  656. }
  657.  
  658.  
  659. proc ResetAxis { axis } {
  660.     global axisOptions axisDefaults graph interp
  661.  
  662.     RGBColorReset axis -color $axisOptions(-color)
  663.     BooleanReset axis -descending $axisOptions(-descending)
  664.     EntryReset axis -font $axisOptions(-font)
  665.     IntReset axis -linewidth $axisOptions(-linewidth)
  666.     BooleanReset axis -logscale $axisOptions(-logscale)
  667.     BooleanReset axis -loose $axisOptions(-loose)
  668.     BooleanReset axis -mapped $axisOptions(-mapped)
  669.     EntryReset axis -max $axisOptions(-max)
  670.     EntryReset axis -min $axisOptions(-min)
  671.     FloatReset axis -rotate 1.0 $axisOptions(-rotate)
  672.     BooleanReset axis -showticks $axisOptions(-showticks)
  673.     FloatReset axis -stepsize 1.0 $axisOptions(-stepsize)
  674.     IntReset axis -subticks $axisOptions(-subticks)
  675.     IntReset axis -ticklength $axisOptions(-ticklength)
  676.     EntryReset axis -title $axisOptions(-title)
  677.     send $interp $graph $axis configure $axisDefaults
  678. }
  679.  
  680. proc GetAxis {} {
  681.     global axis graph interp
  682.     send $interp [list $graph $axis configure]
  683. }
  684.  
  685. proc SetAxisOptions { axis } {
  686.     global getProc axisOptions axisDefaults 
  687.     GetOptions [GetAxis] axisOptions axisDefaults
  688.     ResetAxis $axis
  689. }
  690.  
  691.  
  692. proc SetAxis { option value } {
  693.     global axis graph interp
  694.     send $interp [list $graph $axis configure $option $value]
  695. }
  696.  
  697. proc ConfigureAxis {} {
  698.     global axisOptions axisDefaults 
  699.     global table row column axis setProc getProc
  700.  
  701.     set name axis
  702.     if { [info command .$name] == ".$name" } {
  703.     destroy .$name
  704.     return
  705.     }
  706.     set row 3
  707.     set column 1
  708.     set axis xaxis
  709.     set setProc($name) SetAxis
  710.     set getProc($name) GetAxis
  711.  
  712.     GetOptions [$getProc($name)] axisOptions axisDefaults
  713.     set table($name) .$name
  714.     toplevel $table($name)
  715.     wm title .$name "Axis Configuration"
  716.  
  717.     frame $table($name).frame -relief groove -bd 2
  718.     label $table($name).title -text "Axis Configuration Options"
  719.     
  720.     frame $table($name).axis 
  721.     radiobutton $table($name).axis.x -text "x" -variable axis \
  722.     -value "xaxis" \
  723.     -command "SetAxisOptions xaxis" 
  724.  
  725.     radiobutton $table($name).axis.y -text "y" -variable axis \
  726.     -value "yaxis" \
  727.     -command "SetAxisOptions yaxis" 
  728.  
  729.     radiobutton $table($name).axis.x2 -text "x2" -variable axis \
  730.     -value "x2axis" \
  731.     -command "SetAxisOptions x2axis" 
  732.  
  733.     radiobutton $table($name).axis.y2 -text "y2" -variable axis \
  734.     -value "y2axis" \
  735.     -command "SetAxisOptions y2axis" 
  736.  
  737.     pack append $table($name).axis \
  738.     $table($name).axis.x { left expand fill } \
  739.     $table($name).axis.y { left expand fill } \
  740.     $table($name).axis.x2 { left expand fill } \
  741.     $table($name).axis.y2 { left expand fill } 
  742.  
  743.     RGBColorControl axis -color $axisOptions(-color)
  744.     BooleanControl axis -descending $axisOptions(-descending)
  745.     EntryControl axis -font $axisOptions(-font)
  746.     IntControl axis -linewidth 0 10 $axisOptions(-linewidth)
  747.     BooleanControl axis -logscale $axisOptions(-logscale)
  748.     BooleanControl axis -loose $axisOptions(-loose)
  749.     BooleanControl axis -mapped $axisOptions(-mapped)
  750.     EntryControl axis -max $axisOptions(-max)
  751.     EntryControl axis -min $axisOptions(-min)
  752.     FloatControl axis -rotate 0 360 1.0 $axisOptions(-rotate)
  753.     BooleanControl axis -showticks $axisOptions(-showticks)
  754.     FloatControl axis -stepsize 0 100 1.0 $axisOptions(-stepsize)
  755.     IntControl axis -subticks 0 10 $axisOptions(-subticks)
  756.     IntControl axis -ticklength -20 20 $axisOptions(-ticklength)
  757.     EntryControl axis -title $axisOptions(-title)
  758.     
  759.     button $table($name).button_done -text "done" \
  760.     -command "destroy .$name; set varAxis 0"
  761.     button $table($name).button_reset -text "reset" \
  762.     -command "ResetAxis $axis"
  763.     incr row
  764.     blt_table $table($name) \
  765.     $table($name).frame 0,0 -cspan 14 -rspan $row -fill both \
  766.     -padx 4 -pady 4 \
  767.     $table($name).title         1,0 -cspan 7 \
  768.     $table($name).axis        2,1 -fill x -cspan 3  \
  769.     $table($name).button_reset     $row,2 -reqwidth .7i -anchor w \
  770.     $table($name).button_done     $row,3 -reqwidth .7i -anchor e
  771.     blt_table column $table($name) configure 1 -padx 5
  772.     blt_table row $table($name) configure all -pady 5
  773.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  774.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  775.     blt_table row $table($name) configure { $row } -height {}
  776. }
  777.  
  778.  
  779. proc ResetLegend {} {
  780.     global legendOptions legendDefaults graph interp
  781.  
  782.     RGBColorReset legend -activebackground $legendOptions(-activebackground)
  783.     IntReset legend -activeborderwidth $legendOptions(-activeborderwidth)
  784.     RGBColorReset legend -activeforeground $legendOptions(-activeforeground)
  785.     ReliefReset legend -activerelief $legendOptions(-activerelief)
  786.     AnchorReset legend -anchor $legendOptions(-anchor)
  787.     RGBColorReset legend -background $legendOptions(-background)
  788.     IntReset legend -borderwidth $legendOptions(-borderwidth)
  789.     EntryReset legend -font $legendOptions(-font)
  790.     RGBColorReset legend -foreground $legendOptions(-foreground)
  791.     IntReset legend -ipadx $legendOptions(-ipadx)
  792.     IntReset legend -ipady $legendOptions(-ipady)
  793.     BooleanReset legend -mapped $legendOptions(-mapped)
  794.     IntReset legend -padx $legendOptions(-padx)
  795.     IntReset legend -pady $legendOptions(-pady)
  796.     EntryReset legend -position $legendOptions(-position)
  797.     ReliefReset legend -relief $legendOptions(-relief)
  798.     send $interp $graph legend configure $legendDefaults
  799. }
  800.  
  801.  
  802. proc SetLegend { option value } {
  803.     global graph interp
  804.     send $interp [list $graph legend configure $option $value]
  805. }
  806.  
  807. proc GetLegend {} {
  808.     global graph interp
  809.     send $interp [list $graph legend configure]
  810. }
  811.  
  812. proc ConfigureLegend {} {
  813.     global legendOptions legendDefaults
  814.     global table row column setProc getProc
  815.  
  816.     set name legend
  817.     if { [info command .$name] == ".$name" } {
  818.     destroy .$name
  819.     return
  820.     }
  821.     set row 2
  822.     set column 1
  823.     set setProc($name) SetLegend
  824.     set getProc($name) GetLegend
  825.  
  826.     GetOptions [$getProc($name)] legendOptions legendDefaults
  827.     set table($name) .$name
  828.     toplevel $table($name)
  829.     wm title .$name "Legend Configuration"
  830.  
  831.     frame $table($name).frame -relief groove -bd 2
  832.     label $table($name).title -text "Legend Configuration Options"
  833.  
  834.     RGBColorControl legend -activebackground $legendOptions(-activebackground)
  835.     IntControl legend -activeborderwidth 0 10 \
  836.     $legendOptions(-activeborderwidth)
  837.     RGBColorControl legend -activeforeground $legendOptions(-activeforeground)
  838.     ReliefControl legend -activerelief $legendOptions(-activerelief)
  839.     AnchorControl legend -anchor $legendOptions(-anchor)
  840.     RGBColorControl legend -background $legendOptions(-background)
  841.     IntControl legend -borderwidth 0 10 $legendOptions(-borderwidth)
  842.     EntryControl legend -font $legendOptions(-font)
  843.     RGBColorControl legend -foreground $legendOptions(-foreground)
  844.     IntControl legend -ipadx 0 10 $legendOptions(-ipadx)
  845.     IntControl legend -ipady 0 10 $legendOptions(-ipady)
  846.     BooleanControl legend -mapped $legendOptions(-mapped)
  847.     IntControl legend -padx 0 10 $legendOptions(-padx)
  848.     IntControl legend -pady 0 10 $legendOptions(-pady)
  849.     EntryControl legend -position $legendOptions(-position)
  850.     ReliefControl legend -relief $legendOptions(-relief)
  851.  
  852.     button $table($name).button_done -text "done" \
  853.     -command "destroy .$name; set varLegend 0"
  854.     button $table($name).button_reset -text "reset" \
  855.     -command "ResetLegend"
  856.     incr row
  857.     blt_table $table($name) \
  858.     $table($name).frame 0,0 -cspan 5 -rspan $row -fill both \
  859.         -padx 4 -pady 4 \
  860.     $table($name).title         1,0 -cspan 4 \
  861.     $table($name).button_reset     $row,2 -reqwidth .7i -anchor w \
  862.     $table($name).button_done     $row,3 -reqwidth .7i -anchor e
  863.     blt_table column $table($name) configure 1 -padx 5
  864.     blt_table row $table($name) configure all -pady 5
  865.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  866.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  867.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  868.     blt_table row $table($name) configure { $row } -height {}
  869. }
  870.  
  871. proc ResetCrosshairs {} {
  872.     global xhairsOptions xhairsDefaults graph interp
  873.  
  874.     RGBColorReset crosshairs -color $xhairsOptions(-color)
  875.     IntReset crosshairs -dashes $xhairsOptions(-dashes)
  876.     IntReset crosshairs -linewidth $xhairsOptions(-linewidth)
  877.     BooleanReset crosshairs -mapped $xhairsOptions(-mapped)
  878.     EntryReset crosshairs -position $xhairsOptions(-position)
  879.     send $interp $graph crosshairs configure $xhairsDefaults
  880. }
  881.  
  882. proc SetCrosshairs { option value } {
  883.     global graph interp
  884.     send $interp [list $graph crosshairs configure $option $value]
  885. }
  886.  
  887. proc GetCrosshairs {} {
  888.     global graph interp
  889.     send $interp [list $graph crosshairs configure]
  890. }
  891.  
  892. proc ConfigureCrosshairs {} {
  893.     global xhairsOptions xhairsDefaults 
  894.     global table row column setProc getProc
  895.  
  896.     if { [info command .crosshairs] == ".crosshairs" } {
  897.     destroy .crosshairs
  898.     return
  899.     }
  900.     set name crosshairs
  901.     set row 2
  902.     set column 1
  903.     set setProc($name) SetCrosshairs
  904.     set getProc($name) GetCrosshairs
  905.  
  906.     GetOptions [$getProc($name)] xhairsOptions xhairsDefaults
  907.     set table($name) .crosshairs
  908.     toplevel $table($name)
  909.     wm title .$name "Crosshairs Configuration"
  910.  
  911.     frame $table($name).frame -relief groove -bd 2
  912.     label $table($name).title -text "Crosshairs Configuration Options"
  913.  
  914.     RGBColorControl crosshairs -color $xhairsOptions(-color)
  915.     IntControl crosshairs -dashes 0 10 $xhairsOptions(-dashes)
  916.     IntControl crosshairs -linewidth 0 10 $xhairsOptions(-linewidth)
  917.     BooleanControl crosshairs -mapped $xhairsOptions(-mapped)
  918.     EntryControl crosshairs -position $xhairsOptions(-position)
  919.  
  920.     button $table($name).button_done -text "done" \
  921.     -command "destroy .$name; set varCrosshairs 0"
  922.     button $table($name).button_reset -text "reset" \
  923.     -command "ResetCrosshairs"
  924.     incr row
  925.     blt_table $table($name) \
  926.     $table($name).frame 0,0 -cspan 7 -rspan $row -fill both \
  927.     -padx 4 -pady 4 \
  928.     $table($name).title         1,0 -cspan 7 \
  929.     $table($name).button_reset     $row,2 -reqwidth .7i -anchor w \
  930.     $table($name).button_done    $row,3 -reqwidth .7i -anchor e
  931.     blt_table column $table($name) configure 1 -padx 5
  932.     blt_table row $table($name) configure all -pady 5
  933.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  934.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  935. }
  936.  
  937.  
  938. proc ResetPostScript {} {
  939.     global psOptions psDefaults graph interp
  940.  
  941.     EntryReset postscript -colormap $psOptions(-colormap)
  942.     EntryReset postscript -colormode $psOptions(-colormode)
  943.     EntryReset postscript -fontmap $psOptions(-fontmap)
  944.     BooleanReset postscript -landscape $psOptions(-landscape)
  945.     AnchorReset postscript -pageanchor $psOptions(-pageanchor)
  946.     IntReset postscript -pageheight $psOptions(-pageheight)
  947.     IntReset postscript -pagewidth $psOptions(-pagewidth)
  948.     IntReset postscript -pagex $psOptions(-pagex)
  949.     IntReset postscript -pagey $psOptions(-pagey)
  950.     send $interp $graph psconfigure $psDefaults
  951. }
  952.  
  953. proc SetPostScript { option value } {
  954.     global graph interp
  955.     send $interp [list $graph psconfigure $option $value]
  956. }
  957.  
  958. proc GetPostScript {} {
  959.     global graph interp
  960.     send $interp [list $graph psconfigure]
  961. }
  962.  
  963. proc ConfigurePostScript {} {
  964.     global psOptions psDefaults 
  965.     global table row column setProc getProc
  966.  
  967.     if { [info command .postscript] == ".postscript" } {
  968.     destroy .postscript
  969.     return
  970.     }
  971.     set name postscript
  972.     set row 2
  973.     set column 1
  974.     set setProc($name) SetPostScript
  975.     set getProc($name) GetPostScript
  976.  
  977.     GetOptions [$getProc($name)] psOptions psDefaults
  978.     set table($name) .postscript
  979.     toplevel $table($name)
  980.     wm title .$name "PostScript Configuration"
  981.     
  982.     frame $table($name).frame -relief groove -bd 2
  983.     label $table($name).title -text "PostScript Configuration Options"
  984.  
  985.     EntryControl postscript -colormap $psOptions(-colormap)
  986.     EntryControl postscript -colormode $psOptions(-colormode)
  987.     EntryControl postscript -fontmap $psOptions(-fontmap)
  988.     BooleanControl postscript -landscape $psOptions(-landscape)
  989.     AnchorControl postscript -pageanchor $psOptions(-pageanchor)
  990.     IntControl postscript -pageheight 0 900 $psOptions(-pageheight)
  991.     IntControl postscript -pagewidth 0 900 $psOptions(-pagewidth)
  992.     IntControl postscript -pagex 0 900 $psOptions(-pagex)
  993.     IntControl postscript -pagey 0 900 $psOptions(-pagey)
  994.  
  995.     button $table($name).button_done -text "done" \
  996.     -command "destroy .$name; set varPostScript 0"
  997.     button $table($name).button_reset -text "reset" \
  998.     -command "ResetPostScript"
  999.     incr row
  1000.     blt_table $table($name) \
  1001.     $table($name).frame 0,0 -cspan 7 -rspan $row -fill both \
  1002.     -padx 4 -pady 4 \
  1003.     $table($name).title         1,0 -cspan 7 \
  1004.     $table($name).button_reset     $row,2 -reqwidth .7i -anchor w \
  1005.     $table($name).button_done    $row,3 -reqwidth .7i -anchor e
  1006.     blt_table column $table($name) configure 1 -padx 5
  1007.     blt_table row $table($name) configure all -pady 5
  1008.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  1009.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  1010. }
  1011.  
  1012.  
  1013. proc ResetElement {} {
  1014.     global elemOptions elemDefaults element graph interp class
  1015.  
  1016.     RGBColorReset element -activebackground $elemOptions(-activebackground)
  1017.     RGBColorReset element -activeforeground $elemOptions(-activeforeground)
  1018.     RGBColorReset element -background $elemOptions(-background)
  1019.     EntryReset element -data $elemOptions(-data)
  1020.     RGBColorReset element -foreground $elemOptions(-foreground)
  1021.     EntryReset element -label $elemOptions(-label)
  1022.     MapXAxisReset element -mapx $elemOptions(-mapx)
  1023.     MapYAxisReset element -mapy $elemOptions(-mapy)
  1024.     EntryReset element -xdata $elemOptions(-xdata)
  1025.     EntryReset element -ydata $elemOptions(-ydata)
  1026.  
  1027.     IntReset element -borderwidth $elemOptions(-borderwidth)
  1028.     if { $class == "Blt_graph" } {
  1029.     IntReset element -activelinewidth $elemOptions(-activelinewidth)
  1030.     IntReset element -dashes $elemOptions(-dashes)
  1031.     IntReset element -linewidth $elemOptions(-linewidth)
  1032.     TraceReset element -trace  $elemOptions(-trace)
  1033.     SymbolReset element -symbol $elemOptions(-symbol)
  1034.     FloatReset element -scale 0.01 $elemOptions(-scale)
  1035.     } else {
  1036.     ReliefReset element -relief $elemOptions(-relief)
  1037.     BooleanReset element -stacked $elemOptions(-stacked)
  1038.     EntryReset element -stipple $elemOptions(-stipple)
  1039.     } 
  1040.     send $interp $graph element configure $element $elemDefaults
  1041. }
  1042.  
  1043. proc SetElement { option value } {
  1044.     global graph element interp
  1045.  
  1046.     send $interp [list $graph element configure $element $option $value]
  1047. }
  1048.  
  1049. proc GetElement {} {
  1050.     global graph element interp
  1051.  
  1052.     send $interp [list $graph element configure $element]
  1053. }
  1054.  
  1055. proc GetElementNames {} {
  1056.     global graph element interp
  1057.  
  1058.     send $interp [list $graph element names]
  1059. }
  1060.  
  1061. proc SetElemOptions {} {
  1062.     global elemOptions elemDefaults graph element 
  1063.  
  1064.     GetOptions [GetElement] elemOptions elemDefaults
  1065.     ResetElement 
  1066. }
  1067.  
  1068. proc ConfigureElement {} {
  1069.     global elemOptions elemDefaults class
  1070.     global table graph row column element setProc getProc 
  1071.         
  1072.     set elements [lsort [GetElementNames]]
  1073.     if { [llength $elements] < 1 } {
  1074.     return
  1075.     }
  1076.     set element [lindex $elements 0]
  1077.     GetOptions [GetElement] elemOptions elemDefaults
  1078.  
  1079.     set name element
  1080.     if { [info command .$name] == ".$name" } {
  1081.     destroy .$name
  1082.     return
  1083.     }
  1084.     set setProc($name) SetElement
  1085.     set getProc($name) GetElement
  1086.  
  1087.     set table($name) .$name
  1088.     toplevel $table($name)
  1089.     wm title .$name "Element Configuration"
  1090.  
  1091.     frame $table($name).frame -relief groove -bd 2
  1092.     label $table($name).title -text "Element Configuration Options"
  1093.  
  1094.     set count 0
  1095.     label $table($name).name -text "Elements:"
  1096.     frame $table($name).elements 
  1097.     set frame $table($name).elements
  1098.     foreach i $elements {
  1099.     radiobutton $frame.rbutton_$i -variable element -value $i -text $i \
  1100.         -command "SetElemOptions"
  1101.     blt_table $frame $frame.rbutton_$i $count/2,$count%2 -anchor w
  1102.     incr count
  1103.     }
  1104.  
  1105.     set row 3
  1106.     set column 1
  1107.     RGBColorControl element -activebackground $elemOptions(-activebackground)
  1108.     RGBColorControl element -activeforeground $elemOptions(-activeforeground)
  1109.     if { $class == "Blt_graph" } {
  1110.     IntControl element -activelinewidth 0 10 $elemOptions(-activelinewidth)
  1111.     RGBColorControl element -background $elemOptions(-background)
  1112.     IntControl element -borderwidth 0 10 $elemOptions(-borderwidth)
  1113.     IntControl element -dashes 0 10 $elemOptions(-dashes)
  1114.     EntryControl element -data $elemOptions(-data)
  1115.     RGBColorControl element -foreground $elemOptions(-foreground)
  1116.     EntryControl element -label $elemOptions(-label)
  1117.     IntControl element -linewidth 0 10 $elemOptions(-linewidth)
  1118.     MapXAxisControl element -mapx $elemOptions(-mapx)
  1119.     MapYAxisControl element -mapy $elemOptions(-mapy)
  1120.     TraceControl element -trace  $elemOptions(-trace)
  1121.     SymbolControl element -symbol $elemOptions(-symbol)
  1122.     FloatControl element -scale 0 300 0.01 $elemOptions(-scale)
  1123.     EntryControl element -xdata $elemOptions(-xdata)
  1124.     EntryControl element -ydata $elemOptions(-ydata)
  1125.     } else {
  1126.     RGBColorControl element -background $elemOptions(-background)
  1127.     IntControl element -borderwidth 0 10 $elemOptions(-borderwidth)
  1128.     EntryControl element -data $elemOptions(-data)
  1129.     RGBColorControl element -foreground $elemOptions(-foreground)
  1130.     EntryControl element -label $elemOptions(-label)
  1131.     MapXAxisControl element -mapx $elemOptions(-mapx)
  1132.     MapYAxisControl element -mapy $elemOptions(-mapy)
  1133.     ReliefControl element -relief $elemOptions(-relief)
  1134.     BooleanControl element -stacked $elemOptions(-stacked)
  1135.     EntryControl element -stipple $elemOptions(-stipple)
  1136.     EntryControl element -xdata $elemOptions(-xdata)
  1137.     EntryControl element -ydata $elemOptions(-ydata)
  1138.     }
  1139.     button $table($name).button_done -text "done" \
  1140.     -command "destroy .$name; set varElement 0"
  1141.     button $table($name).button_reset -text "reset" \
  1142.     -command "ResetElement"
  1143.     incr row
  1144.     blt_table $table($name) \
  1145.     $table($name).frame 0,0 -cspan 14 -rspan $row -fill both -padx 4 \
  1146.     -pady 4 \
  1147.     $table($name).title         1,0 -cspan 14 \
  1148.     $table($name).name        2,1 -anchor e \
  1149.     $table($name).elements     2,2 -cspan 2 -fill x \
  1150.     $table($name).button_reset     $row,$column+1 -reqwidth .7i -anchor w \
  1151.     $table($name).button_done     $row,$column+2 -reqwidth .7i -anchor e
  1152.     blt_table column $table($name) configure { 1 5 } -padx 5
  1153.     blt_table row $table($name) configure all -pady 5
  1154.     blt_table column $table($name) configure { 0 4 } -width 0.25i
  1155.     blt_table row $table($name) configure { 0 $row-1 } -height 0.125i
  1156.     blt_table row $table($name) configure { $row } -height {}
  1157. }
  1158.  
  1159. if { $argc != 2 } {
  1160.     error "usage: grconf interp window"
  1161. }
  1162. set interps [lsort [winfo interps]]
  1163.  
  1164. set row 2
  1165. set column 0
  1166.  
  1167. foreach i { General Element Axis Legend Crosshairs PostScript } {
  1168.     checkbutton .cbutton_$i \
  1169.     -text $i \
  1170.     -command "Configure$i" \
  1171.     -relief flat \
  1172.     -variable var$i
  1173.     blt_table . \
  1174.     .cbutton_$i $row,$column -anchor w  -cspan 2 
  1175.     incr row
  1176. }
  1177. label .title -text "Graph Configure Utility"
  1178. message .msg -text "...configuring \"[lindex $argv 1]\"" -aspect 5000
  1179. label .logo -bitmap BLT
  1180. button .quit -text "quit" -command "destroy ."
  1181. blt_table . \
  1182.     .title 0,0 -fill both -cspan 2 \
  1183.     .msg   1,0 -cspan 2 -fill both  \
  1184.     .logo  $row,$column \
  1185.     .quit  $row,$column+1 -reqwidth .75i
  1186.  
  1187.  
  1188. GraphConfigure [lindex $argv 0] [lindex $argv 1]
  1189.  
  1190. #debug 50
  1191.  
  1192.